package com.koron.tool.service;

import com.koron.bean.base.Response;
import com.koron.bean.system.staff.vo.EamUser;
import com.koron.tool.bean.ToolBean;
import com.koron.tool.bean.ToolGroupBean;
import com.koron.tool.bean.ToolQuery;
import org.koron.ebs.mybatis.SessionFactory;

public interface ToolAccountsManagerService {

    /**
     * 新增虚拟组织数据
     *
     * @param bean 实例对象
     * @return
     */
    Response addGroup(SessionFactory factory, EamUser user, ToolGroupBean bean);

    /**
     * 获取组织当前排序
     *
     * @param
     * @return
     */
    Response getGroupOrder(SessionFactory factory, EamUser user, String parent);

    /**
     * 获取虚拟组织数据
     *
     * @param id
     * @return
     */
    Response getGroup(SessionFactory factory, String id);

    /**
     * 修改虚拟组织数据
     *
     * @param bean 实例对象
     * @return
     */
    Response updateGroup(SessionFactory factory, EamUser user, ToolGroupBean bean);

    /**
     * 删除虚拟组织数据
     *
     * @param id
     * @return
     */
    Response deleteGroup(SessionFactory factory, String id);

    /**
     * 手动报废工器具
     *
     * @param id
     * @return
     */
    Response scrapTool(SessionFactory factory, EamUser user, String id);

    /**
     * 新增工器具数据
     *
     * @param bean 实例对象
     * @return
     */
    Response addTool(SessionFactory factory, EamUser user, ToolBean bean);

    /**
     * 获取工器具当前排序
     *
     * @param
     * @return
     */
    Response getToolOrder(SessionFactory factory, EamUser user);

    /**
     * 修改工器具数据
     *
     * @param bean 实例对象
     * @return
     */
    Response updateTool(SessionFactory factory, EamUser user, ToolBean bean);


    /**
     * 获取工器具详情数据
     *
     * @param id
     * @return
     */
    Response getTool(SessionFactory factory, EamUser user, String id);

    /**
     * 删除工器具数据
     *
     * @param ids
     * @return
     */
    Response deleteTool(SessionFactory factory, EamUser user, String ids);

    /**
     * 查询当前组织下的组织或者工器具
     *
     * @param
     * @return 当前组织下的组织或者工器具
     */
    Response getList(SessionFactory factory, ToolQuery query);

    /**
     * 查询当前组织下的库房
     *
     * @param
     * @return 当前组织下的库房
     */
    Response getChildTree(SessionFactory factory, String id);
    /**
     * 查询当前组织下的库房及库房下属数据
     *
     * @param
     * @return 当前组织下的库房及库房下属数据
     */
    Response getChildGroup(SessionFactory factory, String id);

    /**
     * 获取当前组织所属库房
     *
     * @param
     * @return 获取当前组织所属库房
     */
    Response getWarehose(SessionFactory factory, String id);
    /**
     * 获取当前组织所属单位
     *
     * @param
     * @return 当前组织所属单位
     */
    Response getDept(SessionFactory factory, String id);

    /**
     * 获取所有场站级组织数据
     *
     * @param
     * @return 所有场站级组织数据
     */
    Response getAllStationGroup(SessionFactory factory);

    /**
     * 获取组织查询条件
     */
    Response getGroupQuery(SessionFactory factory);

    /**
     * 获取工具查询条件
     */
    Response getToolQuery(SessionFactory factory);
}
